﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Iesi.Collections;
using Iesi.Collections.Generic;
using System.Runtime.Serialization;

namespace XWord.Fundamental.Domain
{
    [Serializable]
    public class RCArticle:Entity
    {
        [DataMember]
        public virtual int Part { get; set; }

        [DataMember]
        public virtual string Content { get; set; }

        [DataMember]
        public virtual int CompleteMinute { get; set; }

        [DataMember]
        public virtual int CETLevel { get; set; }

        [DataMember]
        public virtual int ArticleType { get; set; }

        [DataMember]
        public virtual string PointWords { get; set; }

        [DataMember]
        public virtual IEnumerable<Question> Questions { get; set; }

        [DataMember]
        public virtual IEnumerable<GapFill> GapFillList { get; set; }

        //public virtual Genre Genre { get; set; }

        //public virtual SubjectType SubjectType { get; set; }

        //public virtual RankLevel Rank { get; set; }

    }

    /// <summary>
    /// 题型
    /// </summary>
    public enum ArticleType
    {
       快速阅读,篇章词汇,篇章阅读
    }

    /// <summary>
    /// 题材
    /// </summary>
    public enum SubjectType
    {
        社会生活,
        政治经济,
        环保科技,
        文化人物,
        教育人才,
        医学心理
    }

    /// <summary>
    /// 体裁
    /// </summary>
    public enum Genre
    {
        议论文,
        说明文,
        记述文
    }

    /// <summary>
    /// 难度
    /// </summary>
    public enum RankLevel
    {
        Three,
        Four,
        Five
    }

    [Serializable]
    public class Question : Entity
    {
        public virtual int Priority { get; set; }

        public virtual string Sentence { get; set; }

        public virtual IEnumerable<Choice> Choices { get; set; }

    }

    [Serializable]
    public class Choice:Entity
    {
        public virtual string Sentence { get; set; }

        public virtual bool IsCorrected { get; set; }

        public virtual int Priority { get; set; }
    }
}
